<template>
  <!-- 卡包-优惠券核销2 -->
  <u-dialog :title="title" :show.sync="show" width="30%" :auto-close="false" :footer="true" @cancel="cancel" @confirm="confirm">
    <span>{{ tips }}</span>
  </u-dialog>

</template>

<script>
/**
 * 业务组件 - 卡包-优惠券核销2
 */
export default {
  name: 'CouponConsume2',
  model: {
    prop: 'show',
    event: 'changeShow'
  },
  props: {
    /** 是否弹框 */
    show: {
      type: Boolean,
      default: false
    },
    /** 选中的数据 */
    data: {
      type: Object,
      default: data => {
        return ({})
      }
    },
    /** 是否卡劵 */
    card: {
      type: Boolean,
      default: false
    }
  },
  data() {
    return {
      api: this.$u.api.MarketCouponCard,
      title: '优惠券核销',
      dataForm: {},
      rules: {},
      tips: ''
    }
  },
  watch: {
    show(newVal) {
      // console.log(newVal + '---------------' + oldVal)
      // 监听是否弹框,决定是否初始化数据
      if (newVal) {
        this.dataForm = this.$u.deepClone(this.data)

        const { couponno } = this.dataForm
        this.title = '优惠券核销：查询【' + couponno + '】'

        this.tips = '此操作将【' + couponno + '】核销，是否继续核销？'
      }
    }
  },
  created() {
    if (this.card) {
      this.api = this.$u.api.MarketCouponCardsingle
    }
  },
  methods: {
    // 确认
    confirm() {
      const self = this
      // 处理确认事件
      self.api.consume(this.dataForm).then(() => {
        // 通知信息
        self.$u.msg('操作优惠券核销成功')
        // 双向绑定数据
        self.$emit('changeShow', false)
        // 更新成功后传递
        self.$emit('change')
      })

      this.$emit('confirm')
    },
    // 关闭或者取消
    cancel() {
      this.$emit('changeShow', false)
      this.$emit('cancel')
    }
  }
}
</script>
